package au.com.acpfg.align.muscle;
import org.knime.core.data.DataValue;
import pal.misc.Identifier;
import pal.datatype.DataType;
/**
* These methods correspond to the Alignment interface in PAL to enable the cell to use
* delegate to the alignment value. See the PAL source code for the methods, pretty self-explanatory.
* set*() methods in class Alignment are not supported as DataCell subclasses must not implement set methods
*
* @author andrew.cassin
*
*/
public interface AlignmentValue extends DataValue {
/* ensures right icon, renderers etc. */
public static final UtilityFactory UTILITY = new AlignmentCellFactory();
public enum AlignmentType { AL_AA, // amino acid alignment
AL_NA // nucleotide alignment
// other types to follow...
};
/**
* Returns the type of alignment. Although PAL defines a DataType for this we cannot
* expose the type as it creates ClassLoader problems within the KNIME framework. So
* instead we make an enum and instantiate accordingly. For now, this method supports
* far fewer alignment types than PAL does, but we'll fix that one day...
* @return
*/
public AlignmentType getAlignmentType();
public abstract int getIdCount();
public Identifier getIdentifier(int arg0);
public int whichIdNumber(String arg0);
public String getAlignedSequenceString(int arg0);
public char getData(int arg0, int arg1);
public int getSequenceCount();
public int getSiteCount();
}